##### ubuntu1804快速装机指令(阿里云)
```shell
首先更换阿里源
rm /etc/apt/sources.list
vi /etc/apt/sources.list
 
把下面这些粘贴进去:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
 
:wq保存后更新以下
 
sudo apt-get update
sudo apt-get upgrade
 

然后安docker
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
docker -v
 
 
镜像换源加速
/etc/docker/daemon.json
 
{"registry-mirrors":["https://registry.docker-cn.com","https://gfgiph4d.mirror.aliyuncs.com"]}
 
重启docker
 
sudo systemctl daemon-reload
sudo systemctl restart docker
 
安装portainer
 
docker volume create portainer_data
docker run -d --name portainer -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce

登录道长的dockerhub的账号密码
docker login
登录成功后
sudo docker run -idt -p 3325:22 -p 8025:8069 -p 5435:5432 --name hiker --restart always --privileged=true hjdhnx/odoo:20220106

安装nginx
apt-get install nginx
nginx -v
service nginx start
cd /etc/nginx/conf.d
vi hiker.conf
nginx -t
nginx -s reload

从主机复制到容器 sudo docker cp host_path containerID:container_path
从容器复制到主机 sudo docker cp containerID:container_path host_path
```

### nginx配置海阔视界道长仓库
```shell
# nginx.conf
client_max_body_size 1024M; 上传文件大小限制
 
sendfile on; 设置为on表示启动高效传输文件的模式
 
keepalive_timeout 650;保持连接的时间，默认65s

#hiker.conf
server{
	if ($request_method ~ ^(HEAD)$ ) {
		return 403 "403 forbidden";
	}
}


limit_req_zone $binary_remote_addr zone=allips:10m rate=100r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;
#limit_req_zone $binary_remote_addr zone=allips:10m rate=60r/m;
#limit_conn_zone $binary_remote_addr zone=addr:10m;

server{
    listen 80;
    server_name nokia.press;
    location / {
        limit_req zone=allips burst=5 nodelay;
        limit_conn addr 20;
        limit_rate 500k;
        #....
        proxy_pass http://localhost:8069;
    }
    ##### other directive
}

upstream odoo {
    server 127.0.0.1:8025 weight=1 fail_timeout=0;
}

upstream odoo-im {
    server 127.0.0.1:8069 weight=1 fail_timeout=0;
}

server{
    listen 80;
    server_name hiker.nokia.press;
    location / {
        #....
      #  proxy_pass http://localhost:8025;
       proxy_pass http://odoo;
         proxy_next_upstream error timeout invalid_header http_503;
        proxy_redirect off;
    proxy_read_timeout 300000;
       limit_req zone=allips burst=5 nodelay;
        limit_conn addr 200;
        limit_rate 5000k;
        # set headers
	proxy_buffer_size  128k;
       proxy_buffers   4 256k;
       proxy_busy_buffers_size 256k;

        proxy_set_header    Host            $host;
       proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header    X-Forwarded-Proto https;
    }

    location ~* /web/static/ {
        proxy_cache_valid 200 60m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }
    ##### other directive
}

server{
    listen 8031;
    server_name hiker.nokia.press;
    location / {
        #....
        proxy_pass http://odoo;
         proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_redirect off;
    proxy_read_timeout 300000;
       limit_req zone=allips burst=5 nodelay;
        limit_conn addr 20;
        limit_rate 500k;
        # set headers
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto https;
    }
    ##### other directive
}

```

### 设置封Ip和仓库重启策略
```shell
cd /etc/nginx/conf.d
chmod +x ./banips.sh
ln -s /etc/nginx/conf.d/banips.sh /usr/local/bin/banips
banips run

crontab -e

#5分钟执行一次封ip
*/2 * * * * banips run >> /etc/nginx/conf.d/banips.log  2>&1
```